package com.task.core.service;

import java.util.List;
import java.util.Map;

import com.task.core.domain.SystemSettingInfo;
import com.task.core.dto.request.SysSettingModifyRequestDTO;
import com.task.core.dto.request.SysSettingRequestDTO;
import com.task.core.dto.response.SysSettingResponseDTO;

/**
 * @author 迪迦.
 * @date 2025/2/10 11:22
 */
public interface SysSettingService {

  /**
   * 获取所有的系统设置
   * @param request 请求参数
   * @return  按类型显示名称分组好的数据
   */
  List<SysSettingResponseDTO> getAllSetting(SysSettingRequestDTO request);

  /**
   * 按系统设置的code修改配置
   * @param request 请求参数
   */
  void modifySettingByCode(SysSettingModifyRequestDTO request);

  /**
   * 按类型获取配置集合
   * @param request 请求参数
   * @return  配置集合
   */
  List<SystemSettingInfo> getSettingByType(SysSettingRequestDTO request);

  /**
   * 按类型和key获取唯一一个配置
   * @param request 请求参数
   * @return  配置实体
   */
  SystemSettingInfo getSettingByTypeAndKey(SysSettingRequestDTO request);
}
